gusucode.com > 《MATLAB图像与视频处理实用案例详解》代码 > 《MATLAB图像与视频处理实用案例详解》代码/第 13 章 基于霍夫曼图像压缩重建/Huff2Mat.m
function vec = Huff2Mat(zvec, zi) if ~isa(zvec,'uint8') fprintf('\n请确认输入uint8类型数据向量!\n'); return; end len = length(zvec); str_tmp = repmat(uint8(0),1,len.*8); bi = 1:8; for index = 1:len str_tmp(bi+8.*(index-1)) = uint8(bitget(zvec(index),bi)); end str_tmp = logical(str_tmp(:)'); len = length(str_tmp); str_tmp((len-zi.pad+1):end) = []; len = length(str_tmp); vec = repmat(uint8(0),1,zi.length); vi = 1; ci = 1; cd = 0; for index = 1:len cd = bitset(cd,ci,str_tmp(index)); ci = ci+1; byte = Decode(bitset(cd,ci),zi); if byte > 0 vec(vi) = byte-1; ci = 1; cd = 0; vi = vi+1; end end